<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

/** @ignore */
class cp401 extends cpGenerateur
{


	
	
	
	protected $type;
	public $pageSpeciale = true;
	
	

	
	
	/// @name Initialisation
	//@{
	
	
	/**
	Initialise une instance de cp401.
	
	@param	core	<b>cpCore</b>		Référence à cpCore
	*/
	public function __construct($core)
	{
		$this->core =& $core;
	}
	//@}

	
	
	
	
	/// @name Public
	//@{
	
	
	public function initPublic()
	{
	}
	
	
	/**
	Envoie la page au navigateur: les headers, puis le contenu HTML.
	
	Appelé juste après la fonction 'initPublic' ci-dessus.
	*/
	public function afficher()
	{
		
		$this->chargerTheme();		

		$this->theme->envoyerHeaders();
		http::head(401);
		
		$this->theme->afficherPage();	
		
	}
	
	
	/**
	Prépare une instance de cpTheme et l'affecte à $this->theme.
	*/
	public function chargerTheme()
	{
		$this->theme = $this->core->getObjetTheme($this->core->site->getPropriete('site_theme'));
		$this->theme->setPage($this);
	}
	
	
	public function getFichierTheme()
	{
		return array('401', 'page');
	}
	
	
	public function setType($type)
	{
		$this->type = $type;
	}
	//@}
	
	
	
	

	/// @name Balises de template
	//@{
	
	public function isSiteHome()
	{
		return false;
	}
	
	public function getCategorie()
	{
		return 1;
	}
	
	public function public_head()
	{
		return '';
	}
	
	public function public_titre()
	{
		return __('Accès refusé');
	}
	
	public function public_url()
	{
		return '';
	}
	
	public function public_entete()
	{
		return '';	
	}
	
	public function public_contenu()
	{
		
		if($this->type == 'connexion_requise') {
			
			# Trouver la page de connexion
			$page = $this->core->site->getPages(array(
				'page_generateur' => 'connexion',
				'page_statut' => PAGE_STATUT_ONLINE,
				'limit' => 1
			), CP_GET_RS);
			
			$html = 
			'<p>'.__('Vous devez vous connecter pour accéder à ce document.').'</p>';
			
			if(!$page->isEmpty()) {
					$html.=
					'<p><a href="'.CP_URL_PUBLIQUE.$page->page_url.'">'.__('Accéder à la page de connexion').'</a></p>';
			}
			
		}
		elseif($this->type == 'mot_de_passe_requis')
		{
			
			$_SESSION['nonces']['public_mot_de_passe'] = $nonce = sha1(uniqid(rand(),true));
			
			$html.=
			'<p>'.__('Cette page est protégée par un mot de passe.').'</p>'.
			'<form action="'.$_SERVER['REQUEST_URI'].'" method="post" class="CP_mot_de_passe">'.
				form::hidden('action', 'public_mot_de_passe').
				form::hidden('nonce', $nonce).
				'<p>'.
					'<label for="mot_de_passe">'.__('Mot de passe').'</label>'.
					form::password('mot_de_passe', 30, 250, '');
					
			if($_POST['action'] == 'public_mot_de_passe' && $_POST['nonce'] == $_SESSION['nonces']['public_mot_de_passe'])
			{
				if(empty($_POST['mot_de_passe'])) {
					$html.='<span class="erreur">'.__('Vous devez indiquer un mot de passe.').'</span>';
				} else {
					$html.='<span class="erreur">'.__('Mot de passe incorrect').'</span>';
				}
			}
			
			$html.=
				'</p>'.
				'<input type="submit" value="'.__('Accéder à la page').'" />'.
			'</form>';

		}
		else
		{
			$html = 
			'<p>'.__('Vous ne possédez pas les droits nécessaires pour accéder à cette page.').'</p>';
		}
		
		return $html;
	}
	
	public function public_date_creation()
	{
		return dt::str('%Y-%m-%d %H:%M:%S');
	}
	
	public function public_date_modification()
	{
		return dt::str('%Y-%m-%d %H:%M:%S');
	}
	
	public function public_auteur_pseudo()
	{
		return 'Clicpage';
	}
	
	public function public_auteur_prenom()
	{
		return '';
	}
	
	public function public_auteur_nom()
	{
		return '';
	}
	
	public function public_auteur_email()
	{
		return '';
	}
	
	public function affiche_meta()
	{
		return false;
	}
	//@}
	
	
	
	
	
	/// @name Commentaires
	//@{
	
	
	public function commentairesActifs()
	{
		return false;
	}

	
	/**
	Renvoie le code HTML du formulaire de commentaires.
	
	@return	<b>string</b>
	*/
	public function formulaireCommentaires()
	{	
		return '';
	}
	//@}
	
}

?>